/*
 * Graphics.java
 *
 * Created on 2003/12/30 +0900
 *
 * $Revision: 59 $
 * $Date: 2008-12-28 19:22:21 +0000 (Sun, 28 Dec 2008) $
 */

package org.gikolet.framework.ui;

/**
 * @author Tetsutaro (latest modification by $Author: tetsutaro.ss $)
 * @version $Revision: 59 $ $Date: 2008-12-28 19:22:21 +0000 (Sun, 28 Dec 2008) $
 */
public interface Graphics {
    int SOLID = 0;
    int DOTTED = 1;

    // static int screenWidth;
    // static int screenHeight;

    Graphics createGraphics();

    Graphics createGraphics(int x, int y, int width, int height);

    void setClip(int x, int y, int width, int height);

    void clipRect(int x, int y, int width, int height);

    void translate(int x, int y);

    void setFont(Font font);

    void setBackColor(Color color);

    void setColor(Color color);

    void setStrokeStyle(int strokeStyle);

    int getStrokeStyle();

    Color getColor();

    Color getBackColor();

    Font getFont();

    int getTranslateX();

    int getTranslateY();

    int getClipX();

    int getClipY();

    int getClipWidth();

    int getClipHeight();

    Rectangle getClipBounds();

    void clearRect(int x, int y, int width, int height);

    void drawArc(int x, int y, int width, int height, int startAngle,
	    int arcAngle);

    void drawLine(int x1, int y1, int x2, int y2);

    void drawPolyline(int[] xPoints, int[] yPoints, int nPoints);

    void drawRect(int x, int y, int width, int height);

    /*
     * void drawRoundRect(int x, int y, int width, int height, int arcWidth, int
     * arcHeight);
     */

    void drawChar(char c, int x, int y);

    void drawString(String str, int x, int y);

    void fillArc(int x, int y, int width, int height, int startAngle,
	    int arcAngle);

    void fillRect(int x, int y, int width, int height);

    /*
     * void fillRoundRect(int x, int y, int width, int height, int arcWidth, int
     * arcHeight);
     */
}
